Phần mềm vẽ đồ thị C#
6.566 lượt xem;
- Main.cs
- project /
1
2 using System;
3 using System.Collections.Generic;
4 using System.ComponentModel;
5 using System.Data;
6 using System.Drawing;
7 using System.Text;
8 using System.Windows.Forms;
9 using System.Collections;
10
11
12 namespace VietGraph
13 {
14 public partial class Main : Form
15 {
16 Graph form;
17 Color[] colorLevels = { Color.Red, Color.Green, Color.Blue,
18 Color.Purple, Color.Brown, Color.Orange, Color.Chocolate,
19 Color.Maroon, Color.Navy, Color.YellowGreen };
20 string[] strFunctions ={ "abs", "sin", "cos", "tan", "sec", "cosec", "cot", "arcsin",
21 "arccos", "arctan", "exp", "ln", "log", "antilog", "sqrt", "sinh", "cosh", "tanh",
22 "arcsinh", "arccosh", "arctanh" };
23
24 public Main()
25 {
26 InitializeComponent();
27 }
28
29 #region Event Handlers
30 private void Form1_Load(object sender, EventArgs e)
31 {
32 this.mode.SelectedIndex = 0;
33 this.sensitivity.Enabled = false;
34
35 this.lstExpressions.Items.Add("x");
36 this.lstExpressions.Items.Add("-x");
37 this.lstExpressions.Items.Add("x-3");
38 this.lstExpressions.Items.Add("-x-3");
39 this.lstExpressions.Items.Add("x+3");
40 this.lstExpressions.Items.Add("3-x");
41 //this.lstExpressions.Items.Add("5*(sin(x)+sin(3*x)/3+sin(5*x)/5+sin(7*x)/7+sin(9*x)/9+sin(11*x)/11+sin(13*x)/13)");
42 }
43
44 private void txtExpression_TextChanged(object sender, EventArgs e)
45 {
46 int cursorPosition = this.txtExpression.SelectionStart;
47 WriteText(this.txtExpression.Text);
48 this.txtExpression.SelectionStart = cursorPosition;
49 }
50
51 private void btnAdd_Click(object sender, EventArgs e)
52 {
53 this.CheckDuplication();
54 }
55
56 private bool CheckDuplication()
57 {
58 for (int i = 0; i < lstExpressions.Items.Count; i++)
59 {
60 if (txtExpression.Text == lstExpressions.Items[i].ToString())
61 {
62 MessageBox.Show("Đã có biểu thức này trong danh sách rồi.");
63 return false;
64 }
65 }
66
67 AddExpression();
68 this.lstExpressions.SelectedIndex = -1;
69 this.lstExpressions.Refresh();
70 return true;
71 }
72
73 private void btnClear_Click(object sender, EventArgs e)
74 {
75 this.lstExpressions.Items.Clear();
76 }
77
78 private void btnRemove_Click(object sender, EventArgs e)
79 {
80 int index = this.lstExpressions.SelectedIndex;
81 this.lstExpressions.Items.Remove(this.lstExpressions.SelectedItem);
82 if (index == this.lstExpressions.Items.Count)
83 index--;
84 if (index != -1)
85 this.lstExpressions.SelectedIndex = index;
86 }
87
88 private void cmdPlotGraph_Click(object sender, EventArgs e)
89 {
90 if (mode.Text == "Cartesian")
91 {
92 ExpressionHelper.Cartesian = true;
93 ExpressionHelper.Polar = false;
94 }
95 else
96 {
97 ExpressionHelper.Polar = true;
98 ExpressionHelper.Cartesian = false;
99 }
100
101 ExpressionHelper.XStartValue = Convert.ToDouble(startX.Value);
102 ExpressionHelper.XEndValue = Convert.ToDouble(endX.Value);
103
104 if (form == null || form.IsDisposed)
105 {
106 form = new Graph();
107 form.Show();
108 }
109
110 form.SetRange((Double)startX.Value, (Double)endX.Value, (Double)startY.Value, (Double)endY.Value);
111 form.SetDivisions((int)this.divX.Value, (int)this.divY.Value);
112 form.SetPenWidth((int)this.penWidth.Value);
113
114 if (this.mode.SelectedItem.ToString() == "Polar")
115 form.SetMode(GraphMode.Polar, (int)this.sensitivity.Value);
116 else
117 form.SetMode(GraphMode.Rectangular, 50);
118
119 //form.RemoveAllExpressions();
120 ExpressionHelper.ArrExpression.Clear();
121 for (int i = 0; i < lstExpressions.Items.Count; i++)
122 {
123 form.AddExpression((string)lstExpressions.Items[i], colorLevels[i % colorLevels.Length]);
124 //Add expression to Array Expression (ThemBotBieuThuc form)
125 ExpressionHelper.ArrExpression.Add(lstExpressions.Items[i]);
126 }
127
128 form.Refresh();
129 form.Activate();
130 }
131
132 private void mode_SelectedIndexChanged(object sender, EventArgs e)
133 {
134 if (this.mode.SelectedIndex == 1)
135 this.sensitivity.Enabled = true;
136 else
137 this.sensitivity.Enabled = false;
138 }
139
140 private void txtExpression_KeyPress(object sender, KeyPressEventArgs e)
141 {
142 if (e.KeyChar == 13 && txtExpression.Text.Length > 0)
143 AddExpression();
144
145 //if a letter is found
146 if (char.IsLetter(e.KeyChar))
147 {
148 int cursorPos = this.txtExpression.SelectionStart;
149 if (cursorPos > 0)
150 {
151 //if the previous char is a digit, add a *
152 if (char.IsDigit(this.txtExpression.Text[cursorPos - 1]))
153 {
154 this.txtExpression.Text = this.txtExpression.Text.Insert(cursorPos, "*" + e.KeyChar);
155 cursorPos += 2;
156 this.txtExpression.SelectionStart = cursorPos;
157 e.Handled = true;
158 }
159 //if a function is formed, add a "("
160 else
161 {
162 string text = string.Empty;
163 int i = cursorPos - 1;
164 while (i >= 0)
165 {
166 if (!char.IsLetter(this.txtExpression.Text[i]))
167 break;
168 i--;
169 }
170 i++;
171 //now i is the index where last text is started
172 if (i < cursorPos)
173 text = this.txtExpression.Text.Substring(i, cursorPos - i) + e.KeyChar;
174 if (IsFunction(text))
175 {
176 this.txtExpression.Text = this.txtExpression.Text.Insert(cursorPos, e.KeyChar.ToString() + "(");
177 cursorPos += 2;
178 this.txtExpression.SelectionStart = cursorPos;
179 e.Handled = true;
180 }
181 }
182 }
183 }
184 }
185
186 private void lstExpressions_SelectedIndexChanged(object sender, EventArgs e)
187 {
188 if (this.lstExpressions.SelectedIndex != -1)
189 this.txtExpression.Text = this.lstExpressions.Items[this.lstExpressions.SelectedIndex].ToString();
190 }
191
192 #endregion
193
194 #region Helper Functions
195 //this functions handles coloring of expressions
196 private void WriteText(string text)
197 {
198 int colorIndex = 0;
199 this.txtExpression.Text = "";
200 for (int i = 0; i < text.Length; i++)
201 {
202 if (text[i] == '(')
203 {
204 colorIndex++;
205 if (colorIndex == colorLevels.Length)
206 colorIndex = 0;
207 txtExpression.SelectionColor = colorLevels[colorIndex];
208 }
209
210 this.txtExpression.AppendText(text[i].ToString());
211
212 if (text[i] == ')')
213 {
214 colorIndex--;
215 if (colorIndex < 0)
216 colorIndex = colorLevels.Length - 1;
217 txtExpression.SelectionColor = colorLevels[colorIndex];
218 }
219 }
220 }
221
222 private bool IsFunction(string text)
223 {
224 for (int i = 0; i < strFunctions.Length; i++)
225 if (string.Compare(text, strFunctions[i], true) == 0)
226 return true;
227 return false;
228 }
229
230 private void AddExpression()
231 {
232 if (this.txtExpression.Text.Length == 0)
233 return;
234 this.txtExpression.Text = CompleteParenthesis(this.txtExpression.Text);
235 string expText = this.txtExpression.Text;
236 IEvaluatable exp = new Expression(expText);
237 if (!exp.IsValid)
238 {
239 if (MessageBox.Show("Biểu thức bạn định thêm vào danh sách không hợp lệ! Bạn vẫn muốn thêm nó vào danh sách?", "", MessageBoxButtons.YesNo) == DialogResult.No)
240 return;
241 }
242 this.lstExpressions.Items.Add(expText);
243 this.txtExpression.Text = string.Empty;
244 }
245 private string CompleteParenthesis(string exp)
246 {
247 int leftBracket = 0;
248 int rightBracket = 0;
249 for (int i = 0; i < exp.Length; i++)
250 {
251 if (exp[i] == '(')
252 leftBracket++;
253 else if (exp[i] == ')')
254 rightBracket++;
255 }
256 exp = exp.PadRight(exp.Length + leftBracket - rightBracket, ')');
257 return exp;
258 }
259
260 #endregion
261
262 #region Menu Area
263 private void tácGiảToolStripMenuItem_Click(object sender, EventArgs e)
264 {
265 TacGia frmTacGia = new TacGia();
266 frmTacGia.Show();
267 }
268
269
270
271 private void absToolStripMenuItem_Click(object sender, EventArgs e)
272 {
273 txtExpression.Text += "abs(";
274 }
275
276 private void sinToolStripMenuItem_Click(object sender, EventArgs e)
277 {
278 txtExpression.Text += "sin(";
279 }
280
281 private void cosToolStripMenuItem_Click(object sender, EventArgs e)
282 {
283 txtExpression.Text += "cos(";
284 }
285
286 private void tanToolStripMenuItem_Click(object sender, EventArgs e)
287 {
288 txtExpression.Text += "tan(";
289 }
290
291 private void secToolStripMenuItem_Click(object sender, EventArgs e)
292 {
293 txtExpression.Text += "sec(";
294 }
295
296 private void cosecToolStripMenuItem_Click(object sender, EventArgs e)
297 {
298 txtExpression.Text += "cosec(";
299 }
300
301 private void cotToolStripMenuItem_Click(object sender, EventArgs e)
302 {
303 txtExpression.Text += "cot(";
304 }
305
306 private void arcsinToolStripMenuItem_Click(object sender, EventArgs e)
307 {
308 txtExpression.Text += "arcsin(";
309 }
310
311 private void arccosToolStripMenuItem_Click(object sender, EventArgs e)
312 {
313 txtExpression.Text += "arccos(";
314 }
315
316 private void arctanToolStripMenuItem_Click(object sender, EventArgs e)
317 {
318 txtExpression.Text += "arctan(";
319 }
320
321 private void expToolStripMenuItem_Click(object sender, EventArgs e)
322 {
323 txtExpression.Text += "exp(";
324 }
325
326 private void lnToolStripMenuItem_Click(object sender, EventArgs e)
327 {
328 txtExpression.Text += "ln(";
329 }
330
331 private void logToolStripMenuItem_Click(object sender, EventArgs e)
332 {
333 txtExpression.Text += "log(";
334 }
335
336 private void antilogToolStripMenuItem_Click(object sender, EventArgs e)
337 {
338 txtExpression.Text += "antilog(";
339 }
340
341 private void sqrtToolStripMenuItem_Click(object sender, EventArgs e)
342 {
343 txtExpression.Text += "sqrt(";
344 }
345
346 private void sinhToolStripMenuItem_Click(object sender, EventArgs e)
347 {
348 txtExpression.Text += "sinh(";
349 }
350
351 private void coshToolStripMenuItem_Click(object sender, EventArgs e)
352 {
353 txtExpression.Text += "cosh(";
354 }
355
356 private void tanhToolStripMenuItem_Click(object sender, EventArgs e)
357 {
358 txtExpression.Text += "tanh(";
359 }
360
361 private void arcsinhToolStripMenuItem_Click(object sender, EventArgs e)
362 {
363 txtExpression.Text += "arcsinh(";
364 }
365
366 private void arccoshToolStripMenuItem_Click(object sender, EventArgs e)
367 {
368 txtExpression.Text += "arccosh(";
369 }
370
371 private void arctanhToolStripMenuItem_Click(object sender, EventArgs e)
372 {
373 txtExpression.Text += "arctanh(";
374 }
375
376 private void toolStripMenuItem2_Click(object sender, EventArgs e)
377 {
378 txtExpression.Text += "+";
379 }
380
381 private void toolStripMenuItem3_Click(object sender, EventArgs e)
382 {
383 txtExpression.Text += "-";
384 }
385
386 private void toolStripMenuItem4_Click(object sender, EventArgs e)
387 {
388 txtExpression.Text += "*";
389 }
390
391 private void toolStripMenuItem5_Click(object sender, EventArgs e)
392 {
393 txtExpression.Text += "/";
394 }
395
396 private void toolStripMenuItem6_Click(object sender, EventArgs e)
397 {
398 txtExpression.Text += "^";
399 }
400
401 private void toolStripMenuItem7_Click(object sender, EventArgs e)
402 {
403 txtExpression.Text += "(";
404 }
405
406 private void toolStripMenuItem8_Click(object sender, EventArgs e)
407 {
408 txtExpression.Text += ")";
409 }
410 #endregion
411 }
412 }
2 using System;
3 using System.Collections.Generic;
4 using System.ComponentModel;
5 using System.Data;
6 using System.Drawing;
7 using System.Text;
8 using System.Windows.Forms;
9 using System.Collections;
10
11
12 namespace VietGraph
13 {
14 public partial class Main : Form
15 {
16 Graph form;
17 Color[] colorLevels = { Color.Red, Color.Green, Color.Blue,
18 Color.Purple, Color.Brown, Color.Orange, Color.Chocolate,
19 Color.Maroon, Color.Navy, Color.YellowGreen };
20 string[] strFunctions ={ "abs", "sin", "cos", "tan", "sec", "cosec", "cot", "arcsin",
21 "arccos", "arctan", "exp", "ln", "log", "antilog", "sqrt", "sinh", "cosh", "tanh",
22 "arcsinh", "arccosh", "arctanh" };
23
24 public Main()
25 {
26 InitializeComponent();
27 }
28
29 #region Event Handlers
30 private void Form1_Load(object sender, EventArgs e)
31 {
32 this.mode.SelectedIndex = 0;
33 this.sensitivity.Enabled = false;
34
35 this.lstExpressions.Items.Add("x");
36 this.lstExpressions.Items.Add("-x");
37 this.lstExpressions.Items.Add("x-3");
38 this.lstExpressions.Items.Add("-x-3");
39 this.lstExpressions.Items.Add("x+3");
40 this.lstExpressions.Items.Add("3-x");
41 //this.lstExpressions.Items.Add("5*(sin(x)+sin(3*x)/3+sin(5*x)/5+sin(7*x)/7+sin(9*x)/9+sin(11*x)/11+sin(13*x)/13)");
42 }
43
44 private void txtExpression_TextChanged(object sender, EventArgs e)
45 {
46 int cursorPosition = this.txtExpression.SelectionStart;
47 WriteText(this.txtExpression.Text);
48 this.txtExpression.SelectionStart = cursorPosition;
49 }
50
51 private void btnAdd_Click(object sender, EventArgs e)
52 {
53 this.CheckDuplication();
54 }
55
56 private bool CheckDuplication()
57 {
58 for (int i = 0; i < lstExpressions.Items.Count; i++)
59 {
60 if (txtExpression.Text == lstExpressions.Items[i].ToString())
61 {
62 MessageBox.Show("Đã có biểu thức này trong danh sách rồi.");
63 return false;
64 }
65 }
66
67 AddExpression();
68 this.lstExpressions.SelectedIndex = -1;
69 this.lstExpressions.Refresh();
70 return true;
71 }
72
73 private void btnClear_Click(object sender, EventArgs e)
74 {
75 this.lstExpressions.Items.Clear();
76 }
77
78 private void btnRemove_Click(object sender, EventArgs e)
79 {
80 int index = this.lstExpressions.SelectedIndex;
81 this.lstExpressions.Items.Remove(this.lstExpressions.SelectedItem);
82 if (index == this.lstExpressions.Items.Count)
83 index--;
84 if (index != -1)
85 this.lstExpressions.SelectedIndex = index;
86 }
87
88 private void cmdPlotGraph_Click(object sender, EventArgs e)
89 {
90 if (mode.Text == "Cartesian")
91 {
92 ExpressionHelper.Cartesian = true;
93 ExpressionHelper.Polar = false;
94 }
95 else
96 {
97 ExpressionHelper.Polar = true;
98 ExpressionHelper.Cartesian = false;
99 }
100
101 ExpressionHelper.XStartValue = Convert.ToDouble(startX.Value);
102 ExpressionHelper.XEndValue = Convert.ToDouble(endX.Value);
103
104 if (form == null || form.IsDisposed)
105 {
106 form = new Graph();
107 form.Show();
108 }
109
110 form.SetRange((Double)startX.Value, (Double)endX.Value, (Double)startY.Value, (Double)endY.Value);
111 form.SetDivisions((int)this.divX.Value, (int)this.divY.Value);
112 form.SetPenWidth((int)this.penWidth.Value);
113
114 if (this.mode.SelectedItem.ToString() == "Polar")
115 form.SetMode(GraphMode.Polar, (int)this.sensitivity.Value);
116 else
117 form.SetMode(GraphMode.Rectangular, 50);
118
119 //form.RemoveAllExpressions();
120 ExpressionHelper.ArrExpression.Clear();
121 for (int i = 0; i < lstExpressions.Items.Count; i++)
122 {
123 form.AddExpression((string)lstExpressions.Items[i], colorLevels[i % colorLevels.Length]);
124 //Add expression to Array Expression (ThemBotBieuThuc form)
125 ExpressionHelper.ArrExpression.Add(lstExpressions.Items[i]);
126 }
127
128 form.Refresh();
129 form.Activate();
130 }
131
132 private void mode_SelectedIndexChanged(object sender, EventArgs e)
133 {
134 if (this.mode.SelectedIndex == 1)
135 this.sensitivity.Enabled = true;
136 else
137 this.sensitivity.Enabled = false;
138 }
139
140 private void txtExpression_KeyPress(object sender, KeyPressEventArgs e)
141 {
142 if (e.KeyChar == 13 && txtExpression.Text.Length > 0)
143 AddExpression();
144
145 //if a letter is found
146 if (char.IsLetter(e.KeyChar))
147 {
148 int cursorPos = this.txtExpression.SelectionStart;
149 if (cursorPos > 0)
150 {
151 //if the previous char is a digit, add a *
152 if (char.IsDigit(this.txtExpression.Text[cursorPos - 1]))
153 {
154 this.txtExpression.Text = this.txtExpression.Text.Insert(cursorPos, "*" + e.KeyChar);
155 cursorPos += 2;
156 this.txtExpression.SelectionStart = cursorPos;
157 e.Handled = true;
158 }
159 //if a function is formed, add a "("
160 else
161 {
162 string text = string.Empty;
163 int i = cursorPos - 1;
164 while (i >= 0)
165 {
166 if (!char.IsLetter(this.txtExpression.Text[i]))
167 break;
168 i--;
169 }
170 i++;
171 //now i is the index where last text is started
172 if (i < cursorPos)
173 text = this.txtExpression.Text.Substring(i, cursorPos - i) + e.KeyChar;
174 if (IsFunction(text))
175 {
176 this.txtExpression.Text = this.txtExpression.Text.Insert(cursorPos, e.KeyChar.ToString() + "(");
177 cursorPos += 2;
178 this.txtExpression.SelectionStart = cursorPos;
179 e.Handled = true;
180 }
181 }
182 }
183 }
184 }
185
186 private void lstExpressions_SelectedIndexChanged(object sender, EventArgs e)
187 {
188 if (this.lstExpressions.SelectedIndex != -1)
189 this.txtExpression.Text = this.lstExpressions.Items[this.lstExpressions.SelectedIndex].ToString();
190 }
191
192 #endregion
193
194 #region Helper Functions
195 //this functions handles coloring of expressions
196 private void WriteText(string text)
197 {
198 int colorIndex = 0;
199 this.txtExpression.Text = "";
200 for (int i = 0; i < text.Length; i++)
201 {
202 if (text[i] == '(')
203 {
204 colorIndex++;
205 if (colorIndex == colorLevels.Length)
206 colorIndex = 0;
207 txtExpression.SelectionColor = colorLevels[colorIndex];
208 }
209
210 this.txtExpression.AppendText(text[i].ToString());
211
212 if (text[i] == ')')
213 {
214 colorIndex--;
215 if (colorIndex < 0)
216 colorIndex = colorLevels.Length - 1;
217 txtExpression.SelectionColor = colorLevels[colorIndex];
218 }
219 }
220 }
221
222 private bool IsFunction(string text)
223 {
224 for (int i = 0; i < strFunctions.Length; i++)
225 if (string.Compare(text, strFunctions[i], true) == 0)
226 return true;
227 return false;
228 }
229
230 private void AddExpression()
231 {
232 if (this.txtExpression.Text.Length == 0)
233 return;
234 this.txtExpression.Text = CompleteParenthesis(this.txtExpression.Text);
235 string expText = this.txtExpression.Text;
236 IEvaluatable exp = new Expression(expText);
237 if (!exp.IsValid)
238 {
239 if (MessageBox.Show("Biểu thức bạn định thêm vào danh sách không hợp lệ! Bạn vẫn muốn thêm nó vào danh sách?", "", MessageBoxButtons.YesNo) == DialogResult.No)
240 return;
241 }
242 this.lstExpressions.Items.Add(expText);
243 this.txtExpression.Text = string.Empty;
244 }
245 private string CompleteParenthesis(string exp)
246 {
247 int leftBracket = 0;
248 int rightBracket = 0;
249 for (int i = 0; i < exp.Length; i++)
250 {
251 if (exp[i] == '(')
252 leftBracket++;
253 else if (exp[i] == ')')
254 rightBracket++;
255 }
256 exp = exp.PadRight(exp.Length + leftBracket - rightBracket, ')');
257 return exp;
258 }
259
260 #endregion
261
262 #region Menu Area
263 private void tácGiảToolStripMenuItem_Click(object sender, EventArgs e)
264 {
265 TacGia frmTacGia = new TacGia();
266 frmTacGia.Show();
267 }
268
269
270
271 private void absToolStripMenuItem_Click(object sender, EventArgs e)
272 {
273 txtExpression.Text += "abs(";
274 }
275
276 private void sinToolStripMenuItem_Click(object sender, EventArgs e)
277 {
278 txtExpression.Text += "sin(";
279 }
280
281 private void cosToolStripMenuItem_Click(object sender, EventArgs e)
282 {
283 txtExpression.Text += "cos(";
284 }
285
286 private void tanToolStripMenuItem_Click(object sender, EventArgs e)
287 {
288 txtExpression.Text += "tan(";
289 }
290
291 private void secToolStripMenuItem_Click(object sender, EventArgs e)
292 {
293 txtExpression.Text += "sec(";
294 }
295
296 private void cosecToolStripMenuItem_Click(object sender, EventArgs e)
297 {
298 txtExpression.Text += "cosec(";
299 }
300
301 private void cotToolStripMenuItem_Click(object sender, EventArgs e)
302 {
303 txtExpression.Text += "cot(";
304 }
305
306 private void arcsinToolStripMenuItem_Click(object sender, EventArgs e)
307 {
308 txtExpression.Text += "arcsin(";
309 }
310
311 private void arccosToolStripMenuItem_Click(object sender, EventArgs e)
312 {
313 txtExpression.Text += "arccos(";
314 }
315
316 private void arctanToolStripMenuItem_Click(object sender, EventArgs e)
317 {
318 txtExpression.Text += "arctan(";
319 }
320
321 private void expToolStripMenuItem_Click(object sender, EventArgs e)
322 {
323 txtExpression.Text += "exp(";
324 }
325
326 private void lnToolStripMenuItem_Click(object sender, EventArgs e)
327 {
328 txtExpression.Text += "ln(";
329 }
330
331 private void logToolStripMenuItem_Click(object sender, EventArgs e)
332 {
333 txtExpression.Text += "log(";
334 }
335
336 private void antilogToolStripMenuItem_Click(object sender, EventArgs e)
337 {
338 txtExpression.Text += "antilog(";
339 }
340
341 private void sqrtToolStripMenuItem_Click(object sender, EventArgs e)
342 {
343 txtExpression.Text += "sqrt(";
344 }
345
346 private void sinhToolStripMenuItem_Click(object sender, EventArgs e)
347 {
348 txtExpression.Text += "sinh(";
349 }
350
351 private void coshToolStripMenuItem_Click(object sender, EventArgs e)
352 {
353 txtExpression.Text += "cosh(";
354 }
355
356 private void tanhToolStripMenuItem_Click(object sender, EventArgs e)
357 {
358 txtExpression.Text += "tanh(";
359 }
360
361 private void arcsinhToolStripMenuItem_Click(object sender, EventArgs e)
362 {
363 txtExpression.Text += "arcsinh(";
364 }
365
366 private void arccoshToolStripMenuItem_Click(object sender, EventArgs e)
367 {
368 txtExpression.Text += "arccosh(";
369 }
370
371 private void arctanhToolStripMenuItem_Click(object sender, EventArgs e)
372 {
373 txtExpression.Text += "arctanh(";
374 }
375
376 private void toolStripMenuItem2_Click(object sender, EventArgs e)
377 {
378 txtExpression.Text += "+";
379 }
380
381 private void toolStripMenuItem3_Click(object sender, EventArgs e)
382 {
383 txtExpression.Text += "-";
384 }
385
386 private void toolStripMenuItem4_Click(object sender, EventArgs e)
387 {
388 txtExpression.Text += "*";
389 }
390
391 private void toolStripMenuItem5_Click(object sender, EventArgs e)
392 {
393 txtExpression.Text += "/";
394 }
395
396 private void toolStripMenuItem6_Click(object sender, EventArgs e)
397 {
398 txtExpression.Text += "^";
399 }
400
401 private void toolStripMenuItem7_Click(object sender, EventArgs e)
402 {
403 txtExpression.Text += "(";
404 }
405
406 private void toolStripMenuItem8_Click(object sender, EventArgs e)
407 {
408 txtExpression.Text += ")";
409 }
410 #endregion
411 }
412 }